package com.taxigang.client.ui.map;

import com.google.gwt.event.dom.client.HasClickHandlers;
import com.taxigang.client.Authenication.Provider;
import com.taxigang.client.ui.ButtonType;
import com.taxigang.client.ui.Navigatable;
import com.taxigang.shared.TaxiCompanyInfo;
import com.taxigang.shared.TaxiGangInfo;

public interface MapView extends Navigatable{
	public enum TextBoxType{START, DESTINATION};
	public enum ButtonMode{ NONE, SEARCH, SEARCH_CREATE, LIST_TAXIGANGS };
	public enum PanelType{ SEARCH, FEEDBACK, LOGIN, SORRY , CREATE_STEP1, CREATE_STEP2A, CREATE_STEP2B, CREATE_STEP3, CREATE_STEP4, MYTAXIGANGS, SUGGESTION ,MESSAGES,NEW_MESSAGE, MAP, CONGRATULATIONS_CREATE, CONGRATULATIONS_JOIN, JOIN, MOBILENUMBER,ORDERTAXICOMPANY, WANT_TO_POST,AWARDS};
	
	
	void resetSuggestion();
	
	void createStartMarker(String start, boolean setAddress);
	void createDestinationMarker(String destination, boolean setAddress);
	void createStartDestinationMarker(String start,String dest, boolean setAddress);

	void showSuggestionInMap(TaxiGangInfo suggestion);

	HasClickHandlers getButton(ButtonType buttonType);

	void showMap();

	void setLoggedOut(String msg);
	void setLoggedIn(Provider provider);
	void showLoginButton(boolean show);

	void setFeedbackButtonVisible(boolean b);
	void setLoginButtonVisible(boolean b);

	void showGuide();
	void hideGuide();

	void setStartCity();
	
	void show(PanelType panelType);
	
	SearchView getSearchView();

	//void setTaxiCompanyList(String postalCode, TaxiCompanyInfo[] listtaxiCompany);

	void showMyTaxiGangInMap(TaxiGangInfo suggestion, boolean setAddress);

	void setPanelToShowOnLogin(PanelType panelType);

	//void initOracle();

	void displayTaxiCompanyList(TaxiCompanyInfo[] listTaxiCompanies);

}

